package BNS.wheat;

/** Implements a single datastructure used to convey multiple variables from server to client.
	An object of this class is what getUpdate (See BNSGameController) returns.
	Having everything bundled into one object helps with <ul>
	<li>assembling composite messages, by using automatic marshalling</li>
	<li>compile-time checking of communications, via type-checking of each component</li>
	<li>maintaining integrity of run-time communications, via error-checking 
		of automatic demarshalling</li>
	<li>helping with interpretation in the Client by inserting meta-information
		concerning the types of each message component</li>
	</ul>
	*/
public class Envelope extends BNS.plumbing.ClientLiaison.StatusCarrier
						implements java.io.Serializable {
	/** Most variables are named the same as the game state variables */
	long elapsedTime;
	int currentProgress;
	float payRate, cumulativePay;
	/** holds just that portion of the nodeStates array that pertains to a single client */
	NodeState[] local;
	
	public Envelope() { super(null); }
	}
